package com.nari.ysphd.view;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.PopupWindow;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.nari.ysphd.R;


/*8
 * 消息弹框
 */
public class Progress_Dialog extends PopupWindow {

    private final TextView tv_title;
    private final TextView tv_progress;
    private final ProgressBar pb_progress;
    private View mMenuView;
    public static Activity window;


    public Progress_Dialog(final Activity context, String title) {
        super(context);
        window = context;

//        this.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

        this.setSoftInputMode(PopupWindow.INPUT_METHOD_NOT_NEEDED);
        this.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mMenuView = inflater.inflate(R.layout.view_progressdialog, null);

        tv_title = (TextView) mMenuView.findViewById(R.id.tv_title);
        tv_title.setText(title);
        tv_progress = (TextView) mMenuView.findViewById(R.id.tv_progress);
        pb_progress = (ProgressBar) mMenuView.findViewById(R.id.pb_progress);







        // 设置按钮监听
        // 设置SelectPicPopupWindow的View
        this.setContentView(mMenuView);
        // 设置SelectPicPopupWindow弹出窗体的宽
        this.setWidth(LayoutParams.WRAP_CONTENT);
        // 设置SelectPicPopupWindow弹出窗体的高
        this.setHeight(LayoutParams.WRAP_CONTENT);
        // 设置SelectPicPopupWindow弹出窗体可点击
        this.setFocusable(true);
        // 设置SelectPicPopupWindow弹出窗体动画效果
		//this.setAnimationStyle(R.style.PopupAnimation);
        // 实例化一个ColorDrawable颜色为半透明
        ColorDrawable dw = new ColorDrawable(window.getResources().getColor(
                R.color.transparent));
        // 设置SelectPicPopupWindow弹出窗体的背景
        this.setBackgroundDrawable(dw);
        // 添加pop窗口关闭事件
        this.setOnDismissListener(new poponDismissListener());
        // mMenuView添加OnTouchListener监听判断获取触屏位置如果在择框外面则毁弹出框
        mMenuView.setOnTouchListener(new OnTouchListener() {
            @SuppressLint("ClickableViewAccessibility")
            public boolean onTouch(View v, MotionEvent event) {

                int height = mMenuView.findViewById(R.id.pop_layout).getTop();
                int heightmin = mMenuView.findViewById(R.id.pop_layout)
                        .getBottom();
                int y = (int) event.getY();
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    if (y < height) {
                        dismiss();
                    }
                    if (y > heightmin) {
                        dismiss();
                    }
                }
                return true;
            }
        });
    }

    /**
     * 设置当前进度
     * @param progress
     */
    public void setProgress(int progress){
        tv_progress.setText(progress+"%");
        pb_progress.setProgress(progress);
    }

    /**
     * 弹出的popWin关闭的事件，主要是为了将背景透明度改回来
     *
     * @author cg
     */
   static class poponDismissListener implements OnDismissListener {

        @Override
        public void onDismiss() {
            WindowManager.LayoutParams params = window.getWindow()
                    .getAttributes();
            params.alpha = 1f;
            window.getWindow().setAttributes(params);
        }
    }


}